package com.alks.function.mapper.procurement;

import com.alks.function.data.dto.procurement.ReviewMaterialDto;
import com.alks.function.data.request.procurement.ReviewMaterialRequest;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;

import java.time.LocalDate;
import java.util.List;

@Mapper
public interface ReviewMaterialMapper {

    /**
     * 条件指令查询
     * @param request
     * @return
     */
    List<ReviewMaterialDto> getReviewMaterialList(ReviewMaterialRequest request);

    /**
     * 根据指令查询评审资料
     * @param lotNo
     * @return
     */
    ReviewMaterialDto getReviewMaterialByLotNo(String lotNo);

    /**
     * 批量指令查询评审资料
     * @param lotNos
     * @return
     */
    List<ReviewMaterialDto> getReviewMaterialByLotNos(List<String> lotNos);

    /**
     * 评审资料更新
     *
     * @param reviewMaterialDto
     */
    void reviewMaterialUpdate(ReviewMaterialDto reviewMaterialDto);

    /**
     * 批量更新评审资料
     * @param updatedDtoList
     */
    void batchUpdateReviewMaterial(List<ReviewMaterialDto> updatedDtoList);

    /**
     * 添加评审资料
     * @param reviewMaterialDto
     */
    void addReviewMaterial(ReviewMaterialDto reviewMaterialDto);

    /**
     * 删除
     * @param
     */
    void deleteReviewMaterial(@Param("lotNo") String lotNo, @Param("companyId") String companyId);

    /**
     * 导出
     * @param companyId
     * @param lotNoList
     * @return
     */
    List<ReviewMaterialDto> queryExportReviewMaterial(@Param("companyId") String companyId, @Param("lotNoList") List<String> lotNoList);

    /*批量新增*/

    /*直接查询评审资料上没有的指令数据*/
    List<ReviewMaterialDto> getLotNoList(String companyId);

    /*批量新增*/
    int addBatchReviewMaterial(@Param("list") List<ReviewMaterialDto> reviewMaterialDtos, @Param("now") LocalDate now, @Param("companyId") String companyId, @Param("userName") String userName);
}
